import router from "./router";
import store from "./store";
import NProgress from "nprogress"; // Progress 进度条
import "nprogress/nprogress.css"; // Progress 进度条样式
import { Message } from "element-ui";
import { getToken } from "@/utils/auth"; // 验权

import Cookies from "js-cookie";

const whiteList = ["/login"]; // 不重定向白名单
router.beforeEach((to, from, next) => {
  NProgress.start();

  //把上级ID写到cookie
  let cpid = Cookies.get("pid");
  //let pid = cpid && cpid != "0" ? cpid : to.query.pid;
  let pid = to.query.pid;
  pid = typeof pid === "undefined" || pid == "" ? false : pid;
  pid = !pid && cpid ? cpid : pid;
  pid = !pid ? "0" : pid;

  Cookies.set("pid", pid);

  console.log(pid);

  if (getToken()) {
    if (to.path === "/login") {
      next({
        path: "/"
      });
      NProgress.done(); // if current page is dashboard will not trigger	afterEach hook, so manually handle it
    } else {
      if (store.getters.roles.length === 0) {
        store
          .dispatch("GetInfo")
          .then(res => {
            // 拉取用户信息
            next();
          })
          .catch(err => {
            store.dispatch("FedLogOut").then(() => {
              Message.error(err || "Verification failed, please login again");
              next({
                path: "/"
              });
            });
          });
      } else {
        next();
      }
    }
  } else {
    if (whiteList.indexOf(to.path) !== -1) {
      next();
    } else {
      next("/login");
      NProgress.done();
    }
  }
});

router.afterEach(() => {
  NProgress.done(); // 结束Progress
});
